﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Sale_Count
{
    public partial class FormSlCntUpd : Form
    {
        BrokerSlCnt b_SlCnt = new BrokerSlCnt(); // объявление BrokerSlCnt
        int idx1, idx2; // объявление переменных для установки индекса
        public FormSlCntUpd()
        {
            InitializeComponent();
        }

        private void SlCnt_Upd_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            FClose(); // вызов функции закрытия формы
        }

        private void FormSlCntUpd_FormClosed(object sender, FormClosedEventArgs e) // закрытие формы
        {
            FClose(); // вызов функции закрытия формы
        }

        private void SlCnt_Upd_sBt_Insr_Click(object sender, EventArgs e) // при нажатии кнопки "Сохранить"
        {
            try
            {
                Dm_Count NewCnt = new Dm_Count(); // объявление Dm_Count как NewCnt
                Dm_Count OldCnt = new Dm_Count(); // объявление Dm_Count как OldCnt
                Dm_Pers prs = new Dm_Pers(); // объявление Dm_Pers
                Dm_Type tp = new Dm_Type(); // объявление Dm_Type

                OldCnt.Id_count = Convert.ToInt32(label7.Text); // присвоение значений OldCnt.Id_count из label7.Text

                prs = SlCnt_Upd_cBE_Prs.SelectedItem as Dm_Pers; // присвоение prs значений из SlCnt_Upd_cBE_Prs
                tp = SlCnt_Upd_cBE_Tp.SelectedItem as Dm_Type; // присвоение tp значений из SlCnt_Upd_cBE_Tp

                NewCnt.Customer = SlCnt_Upd_tE_Ctmr.Text; // присвоение NewCnt.Customer значений из SlCnt_Upd_tE_Ctmr.Text
                //NewCnt.Date = Convert.ToDateTime(SlCnt_Upd_dE_Dt.Text); // присвоение значений NewCnt.Date из SlCnt_Upd_dE_Dt.Text
                NewCnt.Dis_date_ready = Convert.ToDateTime(SlCnt_Upd_dE_DsDtRd.Text); // присвоение значений NewCnt.Dis_date_ready из SlCnt_Upd_dE_DsDtRd.Text

                b_SlCnt.Update(OldCnt, NewCnt, prs, tp); // вызов функции на редактирование записи

                MessNotif.Informing("Запись успешно отредактирована.", "Запись отредактирована"); // информирование о редактирование записи 

                FClose(); // вызов функции закрытия формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }
            
        }

        private void FormSlCntUpd_Load(object sender, EventArgs e) // заполнение ComboBox при открытие формы
        {           
            SlCnt_Upd_cBE_Prs.Properties.Items.AddRange(b_SlCnt.FillComboBoxPers()); // заполнение FillComboBoxPers
            SlCnt_Upd_cBE_Tp.Properties.Items.AddRange(b_SlCnt.FillComboBoxType()); // заполнение FillComboBoxType

            int mg = Convert.ToInt32(SlCnt_Upd_cBE_Prs.Text); // объявление переменной и присвоение ей значения из SlCnt_Upd_cBE_Prs.Text

            for (int i = 0; i < SlCnt_Upd_cBE_Prs.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlCnt_Upd_cBE_Prs.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlCnt.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx1 = i; // присваивание idx значения нужного индекса
                }
            }

            SlCnt_Upd_cBE_Prs.SelectedIndex = idx1; // установка индекса



            mg = Convert.ToInt32(SlCnt_Upd_cBE_Tp.Text); // объявление переменной и присвоение ей значения из SlCnt_Upd_cBE_Tp.Text

            for (int i = 0; i < SlCnt_Upd_cBE_Tp.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = SlCnt_Upd_cBE_Tp.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_SlCnt.idxType(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx2 = i; // присваивание idx значения нужного индекса
                }
            }

            SlCnt_Upd_cBE_Tp.SelectedIndex = idx2; // установка индекса

            SlCnt_Upd_dE_DsDtRd.Properties.MinValue = SlCnt_Upd_dE_Dt.DateTime.AddDays(1); // для выбора доступна "текущая дата + 1 день"
        }

        private void FClose() // функция закрытия
        {
            SlCnt_Upd_cBE_Prs.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlCnt_Upd_cBE_Tp.Properties.Items.Clear(); // отчистка ComboBoxPost
            SlCnt_Upd_tE_Ctmr.Text = "";
            SlCnt_Upd_dE_Dt.Text = "";
            SlCnt_Upd_dE_DsDtRd.Text = "";
            this.Close();
        }

        private void FormSlCntUpd_MouseEnter(object sender, EventArgs e)
        {
            fullfill();
        }

        private void fullfill()
        {
            if (SlCnt_Upd_tE_Ctmr.Text != "" & SlCnt_Upd_dE_Dt.Text != "" & SlCnt_Upd_cBE_Prs.SelectedItem != null & SlCnt_Upd_cBE_Tp.SelectedItem != null & SlCnt_Upd_dE_DsDtRd.Text != "")
            {
                SlCnt_Upd_sBt_Insr.Enabled = true;
            }
            else
                SlCnt_Upd_sBt_Insr.Enabled = false;
        }
    }
}
